package net.web.service
{
	import net.web.Service;
	
	import flash.net.NetConnection;
	

	/**
	 * web 服务
	 */	
	public class WebService
	{
		/**	服务 */		
		private var _service:Service;  
		
		
		/**
		 * 构造方法
		 */		
		public function WebService()
		{
			NetConnection.defaultObjectEncoding=flash.net.ObjectEncoding.DEFAULT;
			_service = new Service('',"");
		}  
		
		/**
		 *  与后台通信调用socket
		 * @param destination 后台服务名
		 * @param methodName 后台方法名
		 * @param resultHandler 正确接收的结果
		 * @param faultHandler 错误接收的结果
		 * @parameters 传给后台的参数
		 */			
		public function extMethod(destination:String,methodName:String,resultHandler:Function,faultHandler:Function,...parameters):void{  
			extMethodArray(destination,methodName,resultHandler,faultHandler,parameters);
		}
		
		/**
		 *  与后台通信调用socket
		 * @param destination 后台服务名
		 * @param methodName 后台方法名
		 * @param resultHandler 正确接收的结果
		 * @param faultHandler 错误接收的结果
		 * @param parameters 传给后台的参数
		 */			
		public function extMethodArray(destination:String,methodName:String,resultHandler:Function,faultHandler:Function,parameters:Array):void{  
			_service.destination = destination;
			_service.callMethod(methodName,resultHandler,faultHandler,parameters);
		}
		
		/** 
		 * 设置枝头
		 */  
		public function setHeaderObj(data:Object) : void {  
			_service.setHeaderObj( data );  
		}
		
		/** 
		 * 设置安全证书的用户名和密码 
		 * @param userName 用户名 
		 * @param password 密码 
		 */  
		public function setRemoteCredentials(userName : String,password : String) : void {  
			_service.setRemoteCredentials( userName, password);  
		}
		
		/**
		 *连接 
		 * @param gateWay
		 * 
		 */		
		public function connect(gateWay:String):void
		{
			_service.connect(gateWay);
		}
	}
}